using System;
using System.Collections.Generic;
using Microsoft.Xrm.Sdk;
using UsersSettingsTool.Additional_Classes.Classes;
using UsersSettingsTool.Options;

namespace UsersSettingsTool.Models.Interfaces
{
    /// <summary>
    /// The interface.
    /// </summary>
    public interface IXrm
    {
        void ConnectionStatus(EventArgs e);

        List<CrmUser> GetSystemUsers();

        Guid GetCurrentUserId();

        string GetOrganizationUrl();

        List<TimeZones> GetTimeZones();

        List<Pane> GetPanes();

        List<Tab> GetTabs();

        List<Currency> GetCurrencies();

        List<CalendarList> GetCalenderList();

        List<object> GetTimesList();

        List<object> GetInstalledLanguages();

        string GetBaseLanguage();

        CrmUser GetUser(Guid id);

        List<RecordPerPage> GetRecordsPerPage();

        List<object> GetTrackValues();

        List<object> GetCreateFromEmailOptions();

        EntityReference GetMailBox(Guid userId);

        List<Format> GetFormats();

        void UpdateSystemUser(CrmUser user);       
    }
}